Online analytical processing (OLAP) is a key part of most data warehouse and business analysis systems. OLAP services provide for fast analysis of multi-dimensional information. For this purpose, OLAP services provide for multidimensional access and navigation of data in an intuitive and natural way, providing a global view of data that can be drilled down into particular data of interest. Speed and response time are important attributes of OLAP services that allow users to browse and analyze data online in an efficient manner. Further, OLAP services typically provide analytical tools to rank, aggregate, and calculate lead and lag indicators for the data under analysis.
One of the fundamental structures used in OLAP systems is the cube. Cubes are multi-dimensional objects containing measures at specific coordinates specified by dimension members. In this context, a dimension is a structural attribute of a cube that is a list of members of a similar type in the user's perception of the data. Typically, there is a hierarchy associated with the dimension. For example, a time dimension can consist of days, weeks, months, and years, while a geography dimension can consist of cities, states/provinces, and countries. Dimension members act as indices for identifying a particular cell or range of cells within a multidimensional array. Each cell contains a value, also referred to as a measurement.
It is desirable for OLAP systems to provide rapid response to user queries, while maintaining the ability to store large amounts of cell data. One method used by databases and OLAP systems to provide rapid response is to provide a cache. A cache is a dedicated area of memory that is used to store the results of queries. In previous systems, the cache holds objects that have been recently accessed, or objects that are “near” objects or related to objects that have been recently accessed. The theory of operation in these previous systems is that such objects are likely to be requested by the user in the near future. By holding these objects in a dedicated memory, the system avoids having to perform “round trips” to the data store to obtain data, and further avoids having to perform exhaustive or repetitive searches of the data store.
While caches typically improve the performance OLAP systems, cache design in previous systems ignores a potentially useful input, that of the end-user or system developer. Often, the end-user or developer has knowledge regarding the data objects that will be required from the OLAP system, and in particular, which data objects will be required more often than other data objects.
Therefore, there is a need in the art for a cache system that provides a mechanism for a system user or system developer to specify how objects are to be cached.